home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / share / checkbox / plugins / system_info.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-10-12  |  1.9 KB  |  53 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import logging
  5. from checkbox.lib.safe import safe_md5sum
  6. from checkbox.properties import String
  7. from checkbox.plugin import Plugin
  8.  
  9. class SystemInfo(Plugin):
  10.     system_id = String(required = False)
  11.     
  12.     def register(self, manager):
  13.         super(SystemInfo, self).register(manager)
  14.         self._manager.reactor.call_on('report', self.report, -10)
  15.         self._manager.reactor.call_on('gather-persist', self.gather_persist)
  16.  
  17.     
  18.     def gather_persist(self, persist):
  19.         self.persist = persist.root_at('system_info')
  20.  
  21.     
  22.     def report(self):
  23.         if not self.system_id:
  24.             pass
  25.         system_id = self.persist.get('system_id')
  26.         if not system_id:
  27.             computer = self._manager.registry.hal.computer
  28.             if not computer:
  29.                 return None
  30.             system = computer.system
  31.             if not system:
  32.                 return None
  33.             fingerprint = safe_md5sum()
  34.             for field in [
  35.                 computer.info.product,
  36.                 computer.info.subsystem,
  37.                 system.product,
  38.                 system.vendor,
  39.                 system.formfactor,
  40.                 hardware.vendor,
  41.                 hardware.product]:
  42.                 fingerprint.update(str(field))
  43.             
  44.             system_id = fingerprint.hexdigest()
  45.             self.persist.set('system_id', system_id)
  46.         
  47.         message = system_id
  48.         logging.info('System ID: %s', message)
  49.         self._manager.reactor.fire('report-system_id', message)
  50.  
  51.  
  52. factory = SystemInfo
  53.